/**
 * @section LICENSE
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details at
 * http://www.gnu.org/copyleft/gpl.html
 */

#include <BlockDropperActions.h>
#include <BlockDropperGame.h>
#include <VideoOutput.h>

namespace BlockDropper
{

class BlockDropperUI
{
public:
	BlockDropperUI(const BlockDropperGame & game, VideoOutput & videoOutput);
	BlockDropperActions update();

private:
	void drawBlock(const CellState value, const Point<unsigned short> & position);
	template<typename T>
	Point<unsigned short> translatePoint(const Point<T> & point);
	
	const BlockDropperGame & game;
	VideoOutput & videoOutput;
};

} // end namespace BlockDropper

